package com.tedu.api.io;

import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.io.*;


/**
 * listFiles（接口：Filter）   重载
 * 作用：按照“指定的规则”获取对应文件/文件夹
 *
 * Filter接口---专门给listFiles方法提供：过滤文件夹或者文件【指定规则】
 * accept（）从每个File的文件中判断，拿到【具体逻辑】的文件夹
 *
 * 需求：获取 API项目下所有子项目【文件和文件夹】，获取src文件
 *      指定规则：验证是s开头就是src
 *
 *      //作业2：FileFilter 接口按照 匿名内部类 方法 实现，功能如上需求！
 *      接口： new FileFilter ff=new FileFilter（）{accept（）}
 */
public class FilterAPI {
    //主方法： ./路径指定到根级
    public static void main(String[] args)  {
        //创建File文件类  :获取当前API 文件夹 路径：./

        //4.创建Filter接口对象----无法直接创建：实现类--实现--接口【创建】
       // MyFilter my=new MyFilter();
//        FileFilter my = new FileFilter() {
//            public boolean accept(File pathname) {
//                String name = pathname.getName();
//                System.out.println("过滤出来文件夹的名字是：" + name);
//                return name.startsWith("A");
        //        return pathname.getName().starsWith("s")
           // }
      //  };

        //2.获取文件夹下所有“子项：文件夹下包括所有文件和文件夹“

//        //3.打印子项下所有名字  增强for
//        for(int i=0;i<subs.length;i++){//i 下标 从0开始
//            System.out.println("所有的文件和文件夹的名"+subs[i].getName());
//        }
        //增强for  for（接收类型 f：subs）{}
        for(File f:new File("."+File.separator+"API").listFiles((pathname)->{return pathname.getName().startsWith("s");})){
            System.out.println("遍历后过滤完成："+f);
        }

    }

}





